package com.wangshili.sys.controller;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.github.pagehelper.PageInfo;
import com.wangshili.common.bo.PageObject;
import com.wangshili.common.exception.ServiceException;
import com.wangshili.pojo.common.vo.JsonResult;
import com.wangshili.pojo.sys.entity.SysLog;
import com.wangshili.pojo.sys.entity.SysUser;
import com.wangshili.sys.service.SysLogService;
import com.wangshili.sys.service.SysUserService;
import com.wangshili.sys.vo.SysUserDept;


/**
 * 日志页面控制层
 * @author Administrator
 *
 */
@Controller
@RequestMapping("/user/")
@ResponseBody
public class SysUserController {
	
	@Autowired
	SysUserService sysUserService;
	
	/**
	 * 日志列表1
	 * @param username 当前用户
	 * @param pageCurrent 当前页码
	 * @return 返回查询后的json格式数据
	 */
	@RequestMapping("doFindPageObjects")
	public JsonResult doFindPageObjects(String username
		,Integer pageCurrent) {
		PageInfo<SysUserDept> pageObject = 
				sysUserService.listPageObject(username, pageCurrent);
		return new JsonResult(pageObject);
	}
	
	/**
	 * 根据id更新禁用状态
	 * @param id user的id
	 * @param valid 状态
	 * @param modifiedUser 修改人
	 * @return
	 */
	@RequestMapping("doValidById")
	public JsonResult doFindPageObjects(Integer id,Integer valid) {
		sysUserService.updateValidById(id, valid, "admin");
		return new JsonResult("操作成功");
	}

	/**
	 * 保存用户信息和用户角色关系表
	 * @param entity
	 * @param roleIds
	 * @return
	 */
	@RequestMapping("doSaveObject")
    public JsonResult doSaveObject(
                    SysUser entity,
                    Integer[] roleIds){
            sysUserService.saveObject(entity,roleIds);
            return new JsonResult("save ok");
    }
	
	/**
	 * 编辑用户信息，根据用户id返回用户信息、部门信息、角色ids
	 * @param id
	 * @return
	 */
	@RequestMapping("doFindObjectById")
    public JsonResult doFindObjectById(Integer id) {   		
            return new JsonResult(sysUserService.selectUserDeptRole(id));
	}
	
	/**
	 * 更新用户信息，再根据用户id删除对应的角色信息，再插入客户端传过来的新角色
	 * 信息
	 * @param entity 用户信息
	 * @param userId 用户id
	 * @return
	 */
	@RequestMapping("doUpdateObject")
    public JsonResult doUpdateObject(SysUser entity, Integer... roleIds) {   		
		sysUserService.updateUserAndRole(entity, roleIds);   
		return new JsonResult("更新成功");
	}
	
	/**
	 * 更新密码
	 * @param pwd
	 * @param newPwd
	 * @param cfgPwd
	 * @return
	 */
	@RequestMapping("doUpdatePassword")
	public JsonResult doUpdatePassword(
	                         String pwd,
	                         String newPwd,
	                         String cfgPwd) {
	                 sysUserService.updatePassword(pwd, newPwd, cfgPwd);
	                 return new JsonResult("update ok");
	}
}
